
#pragma once
#include <memory>

#include "DBManager/Common/DBManagerExport.h"
#include "DBManager/Common/Trait/InputTrait.h"
#include "DBManager/DBServiceFactory.h"
#include "DataStructure/Input/Dynamic/RCROSSData.h"

SG_DBMANAGER_NAMESPACE_OPEN

/**
 * @brief    Cross-power spectral density and cross-correlation function output.
 *
 * @author   wuxingchuang
 * @date     2025.10.29
 */
class DBManager_DECLSPEC IRCROSSService
    : public AddTrait<SG::DataStructure::FEM::RCROSSData>,
      public FindBySIdTrait<SG::DataStructure::FEM::RCROSSData>,
      public SizeTrait {
 public:
  virtual ~IRCROSSService() {};
};

template <>
std::shared_ptr<IRCROSSService> DBManager_DECLSPEC DBServiceFactory::get();

SG_DBMANAGER_NAMESPACE_CLOSE
